﻿using System;
using System.Linq;
using System.Reflection;
using log4net;
using Paulovich.Store.Web.Business;

namespace Paulovich.Store.Web.Admin.Region {
    public partial class Default : System.Web.UI.Page {

        private static readonly ILog Log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);

        protected void Page_Load(object sender, EventArgs e) {

            if (!IsPostBack) {

                LoadPage();

            }

        }

        private void LoadPage() {

            try {

                if (Request.QueryString["id"] != null) {

                    NorthwindDataContext db = new NorthwindDataContext();

                    Paulovich.Store.Web.Business.Region obj = db.Regions.Single(p => p.RegionID == Convert.ToInt32(Request.QueryString["id"]));

                    txtName.Text = string.IsNullOrEmpty(obj.RegionDescription) ? string.Empty : obj.RegionDescription.Trim();

                    //
                    // Coloca o foco no campo nome, assim um usuário mais rápido já começa a digitar
                    // sem ter que usar o mouse
                    //
                    txtName.Focus();

                }

            } catch (Exception ex) {

                Log.Error("Saving error", ex);

                //
                // Deu tudo errado, fala para o usuário
                //
                divSuccess.Visible = false;
                divFailed.Visible = true;

            }
        }

        protected void btnSave_Click(object sender, EventArgs e) {

            try {

                NorthwindDataContext db = new NorthwindDataContext();

                //
                // Instancia um novo registro
                //
                
                Paulovich.Store.Web.Business.Region obj = null;

                if (Request.QueryString["id"] != null) {
                
                } else {
                
                }

                Paulovich.Store.Web.Business.Region obj =  ?
                    db.Regions.Single(p => p.RegionID == Convert.ToInt32(Request.QueryString["id"])) :
                    new Paulovich.Store.Web.Business.Region();
                    
                //
                // Passagem de dados
                //
                #region Passagem de dados

                obj.RegionDescription = txtName.Text;

                #endregion

                //
                // Efetivamente entra em contato com o banco
                //

                Request.QueryString["id"] != null

                db.SubmitChanges();

                //
                // Deu tudo certo?
                // Fala pro usuário
                //
                divSuccess.Visible = true;
                divFailed.Visible = false;

            } catch (Exception ex) {

                Log.Error("Saving error", ex);

                //
                // Deu tudo errado, fala para o usuário
                //
                divSuccess.Visible = false;
                divFailed.Visible = true;

            }

        }
    }
}
